package com.kgcx.price.domain;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.sql.Timestamp;

/**
 * PriceCaculationPrice 预估里程实体类
 *
 * @author:zml
 * @date:2017/11/07
 */
@Data
@ApiModel(value = "PriceCaculationPrice", description = "预估里程实体类")
@Table(name = "t_price_caculation_price")
public class PriceCaculationPrice {

    @ApiModelProperty(value = "主键ID", name = "kid", example = "1")
    @Id
    private Long kid;

    @ApiModelProperty(value = "订单号", name = "orderId")
    private String orderId;

    @ApiModelProperty(value = "乘客id", name = "customerId", required = false)
    private Long customerId;

    @ApiModelProperty(value = "司机id", name = "driverId")
    private Long driverId;

    @ApiModelProperty(value = "里程", name = "mileage")
    private Long mileage;

    @ApiModelProperty(value = "里程费", name = "mileageMoney")
    private Long mileageMoney;

    @ApiModelProperty(value = "时长(分钟)", name = "time")
    private Integer time;

    @ApiModelProperty(value = "时长费", name = "timeFee")
    private Long timeFee;

    @ApiModelProperty(value = "起步费", name = "startFee")
    private Long startFee;

    @ApiModelProperty(value = "远途标识 1:是 0:否", name = "travelFlag")
    private Integer travelFlag;

    @ApiModelProperty(value = "出城标识 1:出城 0:未出城 ", name = "outCityFlag")
    private Integer outCityFlag;

    @ApiModelProperty(value = "远途费", name = "travelFee")
    private Long travelFee;

    @ApiModelProperty(value = "出城费", name = "cityFee")
    private Long cityFee;

    @ApiModelProperty(value = "夜间服务费", name = "eveFee")
    private Long eveFee;

    @ApiModelProperty(value = "超里程费", name = "mileageCharge")
    private Long mileageCharge;

    @ApiModelProperty(value = "超时长费", name = "timeCharge")
    private Long timeCharge;

    @ApiModelProperty(value = "套餐价", name = "packageFee")
    private Long packageFee;

    @ApiModelProperty(value = "路桥费", name = "serveiceCharge")
    private Long serveiceCharge;

    @ApiModelProperty(value = "停车费", name = "parkingFee")
    private Long parkingFee;

    @ApiModelProperty(value = "其他费用", name = "otherFee")
    private Long otherFee;

    @ApiModelProperty(value = "总计预估价(已抹零)", name = "totalFee")
    private Long totalFee;

    @ApiModelProperty(value = "总预估价(未抹零)", name = "totals")
    private Long totals;

    @ApiModelProperty(value = "减优惠券之前的总计预估价", name = "totalMoney")
    private Long totalMoney;

    @ApiModelProperty(value = "优惠券ID", name = "couponId")
    private Long couponId;

    @ApiModelProperty(value = "优惠券价", name = "couponFee")
    @Transient
    private Long couponFee;

    @ApiModelProperty(value = "是否套餐0否1是", name = "type")
    private Integer type;

    @ApiModelProperty(value = "计价规则类型 1：常规价 2：套餐价 3：一口价", name = "calType")
    private Integer calType;

    @ApiModelProperty(value = "远途公里", name = "kmLong")
    private Long kmLong;

    @ApiModelProperty(value = "套餐价时的基础里程", name = "mile")
    private Long mile;

    @ApiModelProperty(value = "套餐价时的时长", name = "pactime")
    private Integer pactime;

    @ApiModelProperty(value = "套餐基础价", name = "packages")
    private Double packages;

    @ApiModelProperty(value = "超时长数", name = "overtime")
    private Long overtime;

    @ApiModelProperty(value = "超里程数", name = "overmile")
    private Long overmile;

    @ApiModelProperty(value = "抹零", name = "zero")
    private Long zero;

    @ApiModelProperty(value = "关联报价规则", name = "price_id")
    private Long priceId;

    @ApiModelProperty(value = "创建时间", name = "createTime")
    private Timestamp createTime;

    @ApiModelProperty(value = "创建人", name = "createBy")
    private Long createBy;

    @ApiModelProperty(value = "更新时间", name = "updateTime")
    private Timestamp updateTime;

    @ApiModelProperty(value = "更新人", name = "updateBy")
    private Long updateBy;

    @ApiModelProperty(value = "状态 101:启用 102:禁用 103:删除", name = "status")
    private Integer status;

    @ApiModelProperty(value = "备注", name = "remark")
    private String remark;

    @ApiModelProperty(value = "车辆类型 1：公务轿车 2：商务6座 3：豪华轿车 【必填】", name = "carType", required = true)
    @Transient
    private Integer carType;

    @ApiModelProperty(value = "城市Id【必填】", name = "cityId", required = true)
    @Transient
    private Integer cityId;

    @ApiModelProperty(value = "出发地经纬度【必填】", name = "origin", required = true)
    private String origin;

    @ApiModelProperty(value = "目的地经纬度【必填】", name = "destination", required = true)
    private String destination;

    @ApiModelProperty(value = "订单开始时间【必填】", name = "orderStartTime", required = true)
    private Timestamp orderStartTime;

    @Transient
    private String server;

    @ApiModelProperty(value = "优惠服务类型【必填】1-立即接机，2-立即接站，3-预约接机，4-预约接站，5-预约送机，6-预约送站，7-预约用车  8立即用车", required = false, example = "1")
    @Transient
    private Long orderType;

    @ApiModelProperty(value = "使用渠道：1-小程序，2-管理后台，3-iOS，4-安卓", required = false, example = "1")
    @Transient
    private Long orderChannel;

    @ApiModelProperty(value = "使用者：1=本人使用，2=替他人叫车使用", required = false, example = "1")
    @Transient
    private Long useType;

}